package tech.aistar.day08;

/**
 * 本类用来演示:
 *
 * @author: success
 * @date: 2021/3/17 9:05 上午
 */
public class StaticDemo {
    private int id = 10;//非静态属性

    private static int sid = 100;//静态属性

    //普通代码块
    {
        //执行的时机和创建对象有关系,优先级高于构造块
        //不推荐大家写代码块,代码块中的内容移植到构造块
        System.out.println("普通代码块");
    }

    //构造块
    public StaticDemo(){
        System.out.println("id:"+id);
        System.out.println("sid:"+sid);
        System.out.println("构造块");
    }

    //静态代码块
    static{
        //访问静态属性
        System.out.println("sid:"+sid);

        //因为非静态的成员是属于对象的,此时还没有对象.
        //System.out.println("id:"+id);

        //当JVM启动加载类进内存之后,立即执行,并且执行1次.
        System.out.println("静态代码块");
    }

    public static void main(String[] args) {
        //创建对象
        StaticDemo s1 = new StaticDemo();
        StaticDemo s2 = new StaticDemo();
        StaticDemo s3 = new StaticDemo();
    }
}
